SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[SP_VALI_CONT_Q01]
/*-------------------------------------------------------*/
/*---Empresa               OFISIS S.A.                --*/
/*---CLIEnte               OFISIS                 --*/
/*---Sistema               Tesoreria                  --*/
/*---M®dulo                Empresa                    --*/
/*---Programa              VALIDACION CON CONTABILIDAD   --*/
/*---Script                SP_VALI_CONT_Q01.sql     --*/
/*---Nombre SP             SP_VALI_CONT_Q01         --*/
/*---Desarrollado por      Eduardo Vivar Pomiano      --*/
/*---Fecha Creaci®n        03/01/2001                 --*/
/*---Base Datos            SQL			       --*/
/*---Versi®n               8.0                        --*/
/*---Invoca a SP                                      --*/
/*-------------------------------------------------------*/

/*-------------------------------------------------------*/
/*---Modificado 1 por     :			 --*/
/*---Fecha Modificaci®n   : 			 --*/ 
/*---Detalle Modificaci®n :	 --*/
/*-------------------------------------------------------*/
/*-------------------------------------------------------*/
/*---Drop Proc SP_VALI_CONT_Q01                      --*/
/*---Grant execute on SP_VALI_CONT_Q01 to public         --*/ 
/*---	SP_VALI_CONT_Q01 "Where TXMVTO_CNTB.CO_EMPR In ('01')", 2004, 1, '1'  ----*/                                                        --*/
/*-------------------------------------------------------*/
@ISCA_WHER	VARCHAR(255),
@INNU_ANNO	TD_IN_001,
@INNU_MESE	TD_IN_001,
@ISTI_REPO	TD_VC_001 	--'1' Validaci½n Voucher Duplicado, '2' Validaci½n NU_ASTO de Tesorer­a, '3' Validaci½n Importes
As
CREATE TABLE #TWVALI_CONT_Q01
( CO_EMPR	VARCHAR(2) NULL,
  CO_UNID_CNTB  VARCHAR(3) NULL,
  CO_OPRC_CNTB  VARCHAR(3) NULL,
  NU_ANNO	INTEGER NULL,
  NU_MESE	INTEGER NULL,
  NU_ASTO	VARCHAR(10) NULL,
  CO_CLAV_TAOR	VARCHAR(80) NULL )

DECLARE
@VSNU_ANNO	VARCHAR(4),
@VSNU_MESE	VARCHAR(2)

SELECT @VSNU_ANNO = CONVERT(VARCHAR(4), @INNU_ANNO), @VSNU_MESE = CONVERT(VARCHAR(2), @INNU_MESE)

If @ISTI_REPO = '1'
  EXECUTE ("INSERT INTO #TWVALI_CONT_Q01 (CO_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,
  NU_ASTO, CO_CLAV_TAOR)
  SELECT TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_UNID_CNTB, TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_ANNO, TXMVTO_CNTB.NU_MESE,
  TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.CO_CLAV_TAOR
  FROM TXMVTO_CNTB " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1
  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_UNID_CNTB, TXMVTO_CNTB.CO_OPRC_CNTB, TXMVTO_CNTB.NU_ANNO, 
  TXMVTO_CNTB.NU_MESE, TXMVTO_CNTB.NU_ASTO, TXMVTO_CNTB.CO_CLAV_TAOR ")


If @ISTI_REPO = '1'
  SELECT T1.CO_EMPR, T3.DE_NOMB, T1.CO_UNID_CNTB, T1.CO_OPRC_CNTB, T1.NU_ANNO, T1.NU_MESE, T1.NU_ASTO, T1.CO_CLAV_TAOR, 
  T2.CO_OPRC_CNTB, T2.NU_ASTO, T1.CO_TABL_ORIG
  FROM TXMVTO_CNTB T1, #TWVALI_CONT_Q01 T2, TMEMPR T3
  WHERE T1.CO_EMPR = T2.CO_EMPR
  AND T1.NU_CNTB_EMPR = 1
  AND T1.CO_UNID_CNTB = T2.CO_UNID_CNTB
  AND T1.NU_ANNO = T2.NU_ANNO
  AND T1.NU_MESE = T2.NU_MESE
  AND T1.CO_CLAV_TAOR = T2.CO_CLAV_TAOR
  AND (T1.CO_OPRC_CNTB != T2.CO_OPRC_CNTB
  OR  T1.NU_ASTO != T2.NU_ASTO)
  AND T1.CO_EMPR = T3.CO_EMPR
  AND T1.SI_MVTO_CNTB != 'ELI'


If @ISTI_REPO = '2'

  EXECUTE(" SELECT TXMVTO_CNTB.CO_EMPR, Max(T2.DE_NOMB), Max(TXMVTO_CNTB.CO_UNID_CNTB), Max(TXMVTO_CNTB.CO_OPRC_CNTB), 
  Max(TXMVTO_CNTB.NU_ASTO), TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, Max(TXMVTO_CNTB.FE_ASTO_CNTB), 
  Sum(PatIndex(TXMVTO_CNTB.TI_OPER, 'CAR') * TXMVTO_CNTB.IM_MVTO_CNTB)
  FROM TXMVTO_CNTB, TMEMPR T2 " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1
  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  AND TXMVTO_CNTB.CO_TABL_ORIG != 1
  AND TXMVTO_CNTB.CO_TABL_ORIG != 3
  AND TXMVTO_CNTB.CO_TABL_ORIG != 29
  AND TXMVTO_CNTB.CO_TABL_ORIG != 34
  AND TXMVTO_CNTB.CO_OPRC_CNTB + RIGHT(TXMVTO_CNTB.NU_ASTO, 5) != RIGHT(TXMVTO_CNTB.CO_CLAV_TAOR, 8)
  AND TXMVTO_CNTB.CO_EMPR = T2.CO_EMPR
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR
  UNION ALL
  --RENDICION DE GASTOS
  SELECT TXMVTO_CNTB.CO_EMPR, Max(T2.DE_NOMB), Max(TXMVTO_CNTB.CO_UNID_CNTB), Max(TXMVTO_CNTB.CO_OPRC_CNTB), 
  Max(TXMVTO_CNTB.NU_ASTO), TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, Max(TXMVTO_CNTB.FE_ASTO_CNTB), 
  Sum(PatIndex(TXMVTO_CNTB.TI_OPER, 'CAR') * TXMVTO_CNTB.IM_MVTO_CNTB)
  FROM TXMVTO_CNTB, TMEMPR T2 " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1
  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  AND TXMVTO_CNTB.CO_TABL_ORIG = 1
  AND TXMVTO_CNTB.CO_OPRC_CNTB + RIGHT(TXMVTO_CNTB.NU_ASTO, 5) != SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 3, 3) + SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 8, 5)
  AND TXMVTO_CNTB.CO_EMPR = T2.CO_EMPR
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR
  UNION ALL

  SELECT TXMVTO_CNTB.CO_EMPR, Max(T3.DE_NOMB), Max(TXMVTO_CNTB.CO_UNID_CNTB), Max(TXMVTO_CNTB.CO_OPRC_CNTB), 
  Max(TXMVTO_CNTB.NU_ASTO), TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, Max(TXMVTO_CNTB.FE_ASTO_CNTB), 
  Sum(PatIndex(TXMVTO_CNTB.TI_OPER, 'CAR') * TXMVTO_CNTB.IM_MVTO_CNTB)
  FROM TXMVTO_CNTB, TMDOCU_PROV T2, TTDOCU_CNTB T4, TMEMPR T3 " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1
  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  AND TXMVTO_CNTB.CO_TABL_ORIG = 3
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 1, 2) = T2.CO_EMPR 
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 3, 11) = T2.CO_PROV
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 21, 3) = T2.CO_TIPO_DOCU
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 24, IsNull(NU_LONG_SERI, 0) + IsNull(NU_LONG, 0) + 1) = T2.NU_DOCU_PROV
  AND TXMVTO_CNTB.CO_OPRC_CNTB + RIGHT(TXMVTO_CNTB.NU_ASTO, 5) != T2.NU_ASTO
  AND T2.CO_TIPO_DOCU = T4.TI_DOCU
  AND TXMVTO_CNTB.CO_EMPR = T3.CO_EMPR
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR
  UNION ALL

  SELECT TXMVTO_CNTB.CO_EMPR, Max(T3.DE_NOMB), Max(TXMVTO_CNTB.CO_UNID_CNTB), Max(TXMVTO_CNTB.CO_OPRC_CNTB), 
  Max(TXMVTO_CNTB.NU_ASTO), TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, Max(TXMVTO_CNTB.FE_ASTO_CNTB), 
  Sum(PatIndex(TXMVTO_CNTB.TI_OPER, 'CAR') * TXMVTO_CNTB.IM_MVTO_CNTB)
  FROM TXMVTO_CNTB, TMDOCU_CLIE T2, TTDOCU_CNTB T4, TMEMPR T3 " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1
  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  AND TXMVTO_CNTB.CO_TABL_ORIG = 29
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 1, 2) = T2.CO_EMPR 
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 3, 3) = T2.CO_TIPO_DOCU
  AND SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 6, IsNull(NU_LONG_SERI, 0) + IsNull(NU_LONG, 0) + 1) = T2.NU_DOCU_CLIE
  AND TXMVTO_CNTB.CO_OPRC_CNTB + RIGHT(TXMVTO_CNTB.NU_ASTO, 5) != T2.NU_ASTO
  AND T2.CO_TIPO_DOCU = T4.TI_DOCU
  AND TXMVTO_CNTB.CO_EMPR = T3.CO_EMPR
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR
  UNION ALL

  SELECT TXMVTO_CNTB.CO_EMPR, Max(T3.DE_NOMB), Max(TXMVTO_CNTB.CO_UNID_CNTB), Max(TXMVTO_CNTB.CO_OPRC_CNTB), 
  Max(TXMVTO_CNTB.NU_ASTO), TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR, Max(TXMVTO_CNTB.FE_ASTO_CNTB), 
  Sum(PatIndex(TXMVTO_CNTB.TI_OPER, 'CAR') * TXMVTO_CNTB.IM_MVTO_CNTB)
  FROM TXMVTO_CNTB, TMEMPR T3 " 
  + @ISCA_WHER + "
  AND TXMVTO_CNTB.NU_CNTB_EMPR = 1

  AND TXMVTO_CNTB.NU_ANNO = '" + @VSNU_ANNO + "'
  AND TXMVTO_CNTB.NU_MESE = '" + @VSNU_MESE + "'
  AND TXMVTO_CNTB.CO_CLAV_TAOR IS NOT NULL
  AND TXMVTO_CNTB.NU_PROC = 0
  AND TXMVTO_CNTB.SI_MVTO_CNTB != 'ELI'
  AND TXMVTO_CNTB.CO_TABL_ORIG = 34
  AND TXMVTO_CNTB.CO_OPRC_CNTB + RIGHT(TXMVTO_CNTB.NU_ASTO, 5) != SubString(TXMVTO_CNTB.CO_CLAV_TAOR, 3, 8)
  AND TXMVTO_CNTB.CO_EMPR = T3.CO_EMPR
  GROUP BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR

  ORDER BY TXMVTO_CNTB.CO_EMPR, TXMVTO_CNTB.CO_TABL_ORIG, TXMVTO_CNTB.CO_CLAV_TAOR ")


Return
/*--------------------------------------------- FIN -------------------------------------------------------------*/


GO
